package util;

import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import java.util.StringTokenizer;

import org.apache.hadoop.io.Writable;

public class DiffMessage implements Writable {

//	public static class Tuple3 {
//		int fst;
//		int snd;
//		int thd;
//
//		public Tuple3() {
//			fst = 0;
//			snd = 0;
//			thd = 0;
//		}
//
//		public Tuple3(int a, int b, int c) {
//			fst = a;
//			snd = b;
//			thd = c;
//		}
//
//		@Override
//		public String toString() {
//			return fst + ":" + snd + ":" + thd;
//		}
//	}

	long msgId;

	String msg; // a:b:c

	public static Tuple3 msg2Tuple(String msg) {
		if ((msg != null) && (!msg.isEmpty())) {
			String[] array = msg.split(":");
			return new Tuple3(Integer.parseInt(array[0]),
					Integer.parseInt(array[1]), Integer.parseInt(array[2]));
		}
		return new Tuple3();
	}

	public static String tlp2Str(Tuple3 msg) {

		return msg.toString();
	}

	public DiffMessage() {
		msg = "";
	}

	public long getMsgId() {
		return msgId;
	}

	public String getMsg() {
		return msg;
	}

	public DiffMessage(long id, String ms) {
		msgId = id;
		msg = ms;
	}

	// public ScanMessage(long id, T ms, Class msgClass) {
	// msgId = id;
	// this.msg = ms;
	// switch(msgClass.getSimpleName()){
	// case "Int":
	// clsId =0;
	// case "Long":
	// clsId =1;
	// case "String":
	// clsId=2;
	// default : throw new
	// UnsupportedClassVersionError("unsupported message type");
	// }
	//
	// }

	@Override
	public void readFields(DataInput in) throws IOException {
		msgId = in.readLong();
		msg = in.readUTF();

		// clsId = in.readInt();
		// switch(clsId){
		// case 0 :
		// msgId = in.readLong();
		// msg = (T) new IntWritable(in.readInt());
		// case 1 :
		// msgId = in.readLong();
		// msg = (T) new LongWritable(in.readLong());
		// case 2 :
		// msgId = in.readLong();
		// msg = (T) new DoubleWritable(in.readDouble());
		// case 3 :
		// msgId = in.readLong();
		// msg = (T) new Text(in.readUTF());
		// default : throw new
		// UnsupportedClassVersionError("unsupported message type");
		// }
	}

	@Override
	public void write(DataOutput out) throws IOException {
		out.writeLong(msgId);
		out.writeUTF(msg);
	}

}
